fix: resolve all remaining issues for release v0.0.2-beta.1#18
Merged
Conversation
This PR delivers a comprehensive upgrade transforming the skill suite from
a documentation-driven reference into an automated development toolkit.
- Parameterized code generator (336 combinations: 6 strategies x 7 frameworks x 2 Bowl x 4 scenes)
- BM25 search engine with 51 known issues database (8C + 11H + 20M + 12L)
- CLI skeleton: gskill init/uninstall/generate/versions/update (5 commands)
- Multi-platform support: 10 AI platform configs (Claude, Cursor, Windsurf, etc.)
- Single-command sync: _sync_all.py with --apply/--verify modes
- Root SKILL.md: developer roadmap, 5-question decision tree, anti-patterns
- All 5 sub-skill SKILL.md: narrative workflows, pre-delivery checklists, anti-pattern tables
- CLAUDE.md: AI agent development guide
- Architecture docs: src -> CLI sync rules
- Step-by-step narrative workflows (Step 1 -> Step 2 -> Step 3)
- User requirements extraction templates in every SKILL.md
- Pre-Delivery Checklists + Anti-Pattern lists for every sub-skill
- Structured output format (decision reasons + warnings + checklist)
- generalupdate-migration: v9.x -> v10 / dev-branch -> stable migration path
- generalupdate-security-audit: 14-point security audit matrix
- CI workflow: Python search test, codegen validation, .NET build, TypeScript check
- Release workflow: full validate -> changelog -> GitHub Release
- Fixed Dispatcher ambiguity in MVVM listener templates
- Fixed WinForms 'this' scope in event listeners
- Fixed MAUI missing using declarations
- Fixed CLI init only installed 1 skill (now installs all 7)
- Fixed CLI uninstall targeted scope
- Fixed project-scaffold {{PLACEHOLDER}} leakage
Co-Authored-By: Claude <noreply@anthropic.com>
- fix: 'bate' → 'beta' typo in skill.json, plugin.json, marketplace.json - fix: skill.json version desc v10.4.6 → v10.5.0-beta.4 - fix: template.ts missing readFile import, platform path hardcoding - fix: init.ts --ai all now routes to generateAllPlatformFiles - fix: generate.ts command injection (execSync→spawnSync+argv) - fix: extract.ts path injection (exec→execFile) - fix: _sync_all.py filecmp shallow=False + --verify detects NEEDS SYNC - fix: release.yml Windows paths on Linux runner - fix: sync CLI assets after source changes Co-Authored-By: Claude <noreply@anthropic.com
- Unify version to 0.0.2-beta.1 across all manifests (SKILL.md, skill.json, plugin.json, marketplace.json, READMEs) - Fix 'bate' typo to 'beta' in all docs - Install CLI deps and fix TypeScript type error in uninstall.ts - Run asset sync (_sync_all.py) and verify pass - Update BowlIntegration.cs template to match real API (BowlContext record struct, DumpType, Normalize(), OnCrash callback) - Verify Bowl LaunchAsync API: public Task<BowlResult> LaunchAsync( BowlContext, CancellationToken = default) - Verify NuGet type conflict (CS0433) resolved in v10.5.0-beta.4 — Bowl and Core use independent namespaces, no Common.dll collision - Update BUGS.md with verified status for both issues - CRITICAL: Upgrade code generator templates from v10.4.6 API to v10.5.0-beta.4: - Bootstrap.cs.template: Configinfo -> UpdateRequest - listeners_console.cs.template: IsComplated -> IsCompleted - bowl_notice.cs.template: deprecated MonitorParameter -> BowlContext - DeploymentChecklist.md.template: Configinfo -> UpdateRequest - generate.py: remove outdated v10.4.6 comments and IsComplated refs - Create RELEASE_CHECKLIST.md as 50+ item pre-release checklist - Full validation: 15/15 search tests, 336 codegen combos, 3 strategy smoke tests, CLI TypeScript compile, sync verify all pass Co-Authored-By: Claude <noreply@anthropic.com>
All 15 conflicts were add/add between our v10.5.0-beta.4 API changes and main's outdated v10.4.6 code. Accepted ours (HEAD) in all cases — the correct v10.5 API changes. Co-Authored-By: Claude <noreply@anthropic.com>
1. uninstall.ts: Replace 'as Exclude' type assertions with runtime narrowing via Array.filter() and control-flow type narrowing 2. bowl_notice.cs.template: BackupDirectory now points to previous version (not current version), preventing auto-restore failures 3. BUGS.md: Reconcile Core+Bowl conflict guidance — v10.5.0-beta.4 has no CS0433 conflict, Bowl is a standalone package 4. All 7 docs updated: remove 'Core+Bowl mutual exclusion' guidance, replace with 'no conflict, reference both' for v10.5.0-beta.4 5. cli/package.json: Clarify version is independent from skill version Co-Authored-By: Claude <noreply@anthropic.com>
Replace obsolete Configinfo/Common.Shared/IsComplated references: - Configinfo -> UpdateRequest in skill docs, templates, and checklists - GeneralUpdate.Common.Download -> GeneralUpdate.Core.Download - IsComplated -> IsCompleted (v10.5 API uses the correct spelling) - Fix frontmatter descriptions and user requirement templates Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR finalizes the v0.0.2-beta.1 release by aligning manifests, docs, and codegen templates with the GeneralUpdate.Core v10.5.0-beta.4 API (notably UpdateRequest, updated namespaces, and IsCompleted), and adds a release checklist plus CLI build artifacts.
Changes:
- Unified version strings to
0.0.2-beta.1and refreshed documentation to reflect v10.5.0-beta.4 API naming/namespaces. - Updated codegen templates and skill assets for v10.5.0-beta.4 (UpdateRequest, event args namespaces,
IsCompleted, Bowl API examples). - CLI: fixed TypeScript typing/narrowing for uninstall and added
package-lock.json; addedRELEASE_CHECKLIST.md.
Reviewed changes
Copilot reviewed 36 out of 37 changed files in this pull request and generated 11 comments.
Show a summary per file
| File | Description |
|---|---|
| SKILL.md | Fixes version string spelling (beta). |
| skill.json | Bumps skill manifest version to 0.0.2-beta.1. |
| RULES.md | Updates NuGet guidance for Bowl/Core and v10.5 namespace guidance. |
| RELEASE_CHECKLIST.md | Adds a comprehensive pre-release checklist. |
| README.zh-Hans.md | Fixes version string spelling (beta). |
| README.md | Fixes version string spelling (beta). |
| README.en.md | Fixes version string spelling (beta) and retains release date. |
| cli/src/commands/uninstall.ts | Tightens TypeScript narrowing when uninstalling “all” AI types. |
| cli/package.json | Clarifies CLI vs skill versioning in description. |
| cli/package-lock.json | Adds lockfile for reproducible CLI installs/builds. |
| cli/assets/skills/generalupdate-ui/SKILL.md | Updates EventArgs namespaces and IsCompleted. |
| cli/assets/skills/generalupdate-troubleshoot/SKILL.md | Updates Configinfo → UpdateRequest wording. |
| cli/assets/skills/generalupdate-migration/SKILL.md | Updates Bowl/Core conflict guidance for v10.5. |
| cli/assets/skills/generalupdate-init/SKILL.md | Updates to UpdateRequest + revises Bowl/Core guidance and checklists. |
| cli/assets/skills/generalupdate-init/reference.md | Updates NuGet notes and UpdateRequest reference table. |
| cli/assets/skills/generalupdate-advanced/templates/BowlIntegration.cs | Updates Bowl integration example to v10.5 API shape. |
| cli/assets/skills/generalupdate-advanced/SKILL.md | Updates Bowl/Core guidance and verification checklist. |
| cli/assets/scripts/generate/templates/listeners_console.cs.template | Updates IsComplated → IsCompleted. |
| cli/assets/scripts/generate/templates/DeploymentChecklist.md.template | Updates Configinfo → UpdateRequest text. |
| cli/assets/scripts/generate/templates/bowl_notice.cs.template | Updates Bowl snippet to BowlContext and adds guidance text. |
| cli/assets/scripts/generate/templates/Bootstrap.cs.template | Updates Bootstrap template to UpdateRequest + new namespaces. |
| cli/assets/scripts/generate.py | Updates warning strings and removes obsolete IsComplated note. |
| BUGS.md | Updates audit report for v10.5.0-beta.4 status and Bowl API notes. |
| .claude/skills/generalupdate-ui/SKILL.md | Mirrors UI skill doc updates (namespaces / IsCompleted). |
| .claude/skills/generalupdate-troubleshoot/SKILL.md | Mirrors troubleshoot doc updates (UpdateRequest). |
| .claude/skills/generalupdate-migration/SKILL.md | Mirrors migration doc updates (Bowl/Core guidance). |
| .claude/skills/generalupdate-init/SKILL.md | Mirrors init doc updates (UpdateRequest, Bowl/Core notes, checklists). |
| .claude/skills/generalupdate-init/reference.md | Mirrors init reference updates (NuGet notes, UpdateRequest table). |
| .claude/skills/generalupdate-advanced/templates/BowlIntegration.cs | Mirrors Bowl integration template updates. |
| .claude/skills/generalupdate-advanced/SKILL.md | Mirrors advanced skill doc updates. |
| .claude/scripts/generate/templates/listeners_console.cs.template | Mirrors codegen listener template update (IsCompleted). |
| .claude/scripts/generate/templates/DeploymentChecklist.md.template | Mirrors codegen checklist template update (UpdateRequest). |
| .claude/scripts/generate/templates/bowl_notice.cs.template | Mirrors codegen Bowl notice snippet update. |
| .claude/scripts/generate/templates/Bootstrap.cs.template | Mirrors codegen Bootstrap template update (UpdateRequest). |
| .claude/scripts/generate.py | Mirrors generator warning string updates and removes obsolete note. |
| .claude-plugin/plugin.json | Bumps plugin version to 0.0.2-beta.1. |
| .claude-plugin/marketplace.json | Bumps marketplace/plugin versions to 0.0.2-beta.1. |
Files not reviewed (1)
- cli/package-lock.json: Generated file
| ## NuGet Package Rules | ||
| - Core only: `dotnet add package GeneralUpdate.Core --version 10.5.0-beta.4` | ||
| - With Bowl: **reference only** `GeneralUpdate.Bowl` (transitively includes Core, the two conflict) | ||
| - With Bowl: reference **both** `GeneralUpdate.Core` and `GeneralUpdate.Bowl` (v10.5.0-beta.4: Bowl is standalone, no type conflict) |
Comment on lines
12
to
+15
| /// NuGet: dotnet add package GeneralUpdate.Bowl --version 10.5.0-beta.4 | ||
| /// Note: Reference only GeneralUpdate.Bowl (it transitively includes Core). | ||
| /// Do NOT reference GeneralUpdate.Core separately when using Bowl. | ||
| /// |
Comment on lines
12
to
+15
| /// NuGet: dotnet add package GeneralUpdate.Bowl --version 10.5.0-beta.4 | ||
| /// Note: Reference only GeneralUpdate.Bowl (it transitively includes Core). | ||
| /// Do NOT reference GeneralUpdate.Core separately when using Bowl. | ||
| /// |
Comment on lines
14
to
16
| {{#BOWL}} | ||
| // Bowl 配置(仅包含 GeneralUpdate.Bowl 包,不重复添加 Core) | ||
| {{/BOWL}} |
Comment on lines
14
to
16
| {{#BOWL}} | ||
| // Bowl 配置(仅包含 GeneralUpdate.Bowl 包,不重复添加 Core) | ||
| {{/BOWL}} |
|
|
||
| ### Bootstrap | ||
| - [ ] `Configinfo` 6 个必填字段都已设置 | ||
| - [ ] `UpdateRequest` 6 个必填字段都已设置 |
|
|
||
| ### Bootstrap | ||
| - [ ] `Configinfo` 6 个必填字段都已设置 | ||
| - [ ] `UpdateRequest` 6 个必填字段都已设置 |
Comment on lines
18
to
+20
| > - `GeneralUpdate.Differential` 的 `DifferentialCore` 等类型已内嵌在 `GeneralUpdate.Core` 中,**不需额外引用**(直接使用 Core 即可) | ||
| > - `GeneralUpdate.Bowl` 和 `GeneralUpdate.Core` **不能同时引用**(两者都发布了 `GeneralUpdate.Common` 导致 CS0433) | ||
| > - 使用 Bowl 时**只引用 `GeneralUpdate.Bowl`**(它传递依赖 Core 的所有功能) | ||
| > - `GeneralUpdate.Bowl` 和 `GeneralUpdate.Core` **可以同时引用**(v10.5.0-beta.4 中 Bowl 与 Core 无共用类型,不再冲突) | ||
| > - 使用 Bowl 时仍需引用 `GeneralUpdate.Bowl`(它**不**传递依赖 Core) |
Comment on lines
18
to
+20
| > - `GeneralUpdate.Differential` 的 `DifferentialCore` 等类型已内嵌在 `GeneralUpdate.Core` 中,**不需额外引用**(直接使用 Core 即可) | ||
| > - `GeneralUpdate.Bowl` 和 `GeneralUpdate.Core` **不能同时引用**(两者都发布了 `GeneralUpdate.Common` 导致 CS0433) | ||
| > - 使用 Bowl 时**只引用 `GeneralUpdate.Bowl`**(它传递依赖 Core 的所有功能) | ||
| > - `GeneralUpdate.Bowl` 和 `GeneralUpdate.Core` **可以同时引用**(v10.5.0-beta.4 中 Bowl 与 Core 无共用类型,不再冲突) | ||
| > - 使用 Bowl 时仍需引用 `GeneralUpdate.Bowl`(它**不**传递依赖 Core) |
Comment on lines
+55
to
+57
| | 有 Bowl | 只引用 `GeneralUpdate.Bowl`(不单独引用 Core) | ✅ 已验证 | | ||
| | 无 Bowl | 只引用 `GeneralUpdate.Core` | ✅ 正常 | | ||
| | 两者都用 | 同时引用 Core + Bowl | ✅ 无冲突 | |
… clientVersion ManifestInfo.AppType is a string field (enum name parsed via Enum.TryParse), and the version field key is 'clientVersion' not 'version'. Updated template to match actual deserialization. Discovered and verified via end-to-end integration test: Server → Client → Download → SHA256 verify → Extract → all pass
Templates now match the official GeneralUpdate Beginner Cookbook pattern: - Bootstrap.cs.template: Only 3 secrets in UpdateRequest (UpdateUrl, ReportUrl, AppSecretKey). Identity fields auto-discovered from manifest. - Add SetOption(Option.AppType, AppType.Client) to Client bootstrap. - UpgradeProgram.cs.template: Add SetOption(Option.AppType, AppType.Upgrade) and event listeners for applying progress. - manifest.json.template: 'version' -> 'clientVersion' to match ManifestInfo field name. - generate.py: add --report-url argument, compute default REPORT_URL. - Remove Manual control-flow type casting in cli/src/commands/uninstall.ts. End-to-end verified with full official Server flow: POST /Upgrade/Verification (AppType=1/2) -> 200 Scenario=Both -> Download 4 packages -> Hash verify -> Decompress -> Patch -> WriteBack manifest -> IPC sent -> Launch Upgrade process All middleware passed. All events triggered.
Accept HEAD (our v10.5.0-beta.4 API fix) over main's outdated Configinfo/v10.4.6 patterns in all conflicted files.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Comprehensive fix covering all remaining issues for the v0.0.2-beta.1 release.
Key Changes
0.0.2-beta.1across all manifestsBowlContextrecord struct,Normalize())Configinfo/Common.Shared/IsComplatedrefs replacedValidation
/tmp/final-sample)